package com.ruoyi.water.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.water.domain.HourData;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 小时数据表Mapper接口
 */
public interface HourDataMapper extends BaseMapper<HourData> {

    /**
     * 批量插入小时数据，忽略重复记录（基于meterId+valueTime联合约束）
     * @param list 待插入的HourData列表
     * @return 实际插入成功的记录数
     */
    @Insert("<script>" +
            "INSERT IGNORE INTO t_hourdata (" +
            "  meterId,    " +  // 水表ID
            "  valueTime,  " +  // 小时时间（规范化后的整点时间）
            "  value      " +  // 小时差值
            ") VALUES " +
            "<foreach collection='list' item='item' separator=','>" +
            "( " +
            "  #{item.meterId}, " +
            "  #{item.valueTime}, " +
            "  #{item.value} " +
            ")" +
            "</foreach>" +
            "</script>")
    int insertBatchIgnoreDuplicates(@Param("list") List<HourData> list);
}